Node.js console at debug
console API
log\error\info\warn
Node 主要提供了四种常用的 API,其中主要分为 console.log
、console.error
、console.info
、console.warn
等/14.Node.js%20console%20at%20debug.html)
1 | /* |
在这 console.log
同等于 console.error
、console.info
、console.warn
等 API,当然可根据不同的场景和语法结构使用响应的方法。
console.time at timeEnd
通常 console.time
和 console.timeEnd
将用于评估 time
和 timeEnd
两点之间的时间差(单位为:毫秒)
1 | // timeLabel: 0.069ms |
console.assert
该 API 方法主要使用其 console.assert
进行断言(assertion),而断言主要是一种放在程序中的一阶逻辑,也就是结果为真或假的逻辑判断式。目的是为了表示与验证程序预期的结果,当程序运行到断言位置时,对应断言应为 true
,假设程序终止并给出错误信息。
1 | /* |
或者直接通过异常进行处理:
1 | // Assertion failed: error |
console.trace
这主要用于将字符串打印到 stderr(标准错误)中,然后以 util.format()
格式的消息和代码到当前的位置堆栈跟踪
1 | /* |
console.dir
该方法主要用于深层次的打印,其中可以通过 depth
进行深层次的打印层级。
1 | var obj = { |
自定义 stdout
自定义 stdocut 即标准输出,基于 console.Console
将数据输出到指定的文件中,当然这其中会使用到 fs
模块。
1 | const fs = require('fs') |
当运行之后,通过 logger.log
的内容数据将会直接写入到 fs.createWriteStream
方法中的 path
参数路径中。
desfile.txt:“hello,world”
debug
对于日志的调试,可以通过 console.log
输出调试日志,由于 console.log
可以支持服务端以及浏览器中使用,且非常的简洁易用,因此这种方法对日志的调试很好。
在开发中由于需要调试就需要多个 console.log
进行输出,之后上传到服务端中又注释 console.log
,因此这就是一个加注释和去注释的过程。
但由于上述方法太过于低效,因此 debug
库就可以实现控制输出的调试,他主要的作用就是判断 DEBUG
环境变量,来调整程序的运行环境即可控制日志的是否输出,但他最为核心的还是对 DEBUG
环境变量进行解析,允许开发者选性的控制输出日志。
project
app.js
1 | var debug = require('debug')('http') |
worker.js
1 | var a = require('debug')('worker:a') |
条件的定义
有些方法和事件可以通过 --conditions flag
进行使用,但同样可以在 debug
下进行引入参数,来实现对生产环境日志开启条件,在本地环境下开启日志:
Id | Name | Info |
---|---|---|
1 | browser(浏览器) | 任何环境,实现了 Web 浏览器中 JavaScript 所提供的全局浏览器 API |
2 | development(开发环境/本地环境) | 可用于开发环境入口点,必须始终不与生产环境互斥 |
3 | production(生产环境) | 用于定义生产环经的切入点,并与本地/开发环境互斥 |
1 | const _ = require('lodash') |
命名空间
Node debug 支持对日志进行分类打印以及命名空间及通佩符,在下文中 DEBUG=ap*
表示将所有以 ap
为开头的调试日志都将会被打印
1 | const debug = require('debug') |